CREATE TABLE - instrukcja

Tworzy now╣ tabelΩ.


Uwaga Aparat bazy danych Microsoft Jet nie obs│uguje instrukcji CREATE TABLE, ani ┐adnej z instrukcji DDL, w odniesieniu do baz danych nie opartych na aparacie Microsoft Jet. W przypadku takich baz nale┐y u┐yµ metody DAO Create.


Sk│adnia

CREATE [TEMPORARY] TABLE tabela (pole1 typ [(rozmiar)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [indeks1] [, pole2 typ [(rozmiar)] [NOT NULL] [indeks2] [, ...]] [, CONSTRAINT indeks_wielopolowy [, ...]])

Sk│adnia instrukcji CREATE TABLE zawiera nastΩpuj╣ce elementy:

Element Opis
tabela Nazwa tworzonej tabeli.
pole_1, pole_2 Nazwa pola lub p≤l, kt≤re maj╣ byµ utworzone w nowej tabeli. Nale┐y utworzyµ co najmniej jedno pole.
typ Typ danych pola w nowej tabeli.
rozmiar Rozmiar pola w znakach (tylko dla p≤l typu Text i Binary).
indeks_1, indeks_2 Klauzula CONSTRAINT definiuj╣ca indeks dla pojedynczego pola. WiΩcej informacji na temat jak utworzyµ ten indeks mo┐na znaleƒµ pod has│em CONSTRAINT û klauzula.
indeks wielopolowy Klauzula CONSTRAINT definiuj╣ca indeks dla wielu p≤l. WiΩcej informacji na temat jak utworzyµ ten indeks mo┐na znaleƒµ pod has│em CONSTRAINT û klauzula.

Uwagi

Instrukcja CREATE TABLE jest u┐ywana do definiowana nowej tabeli wraz z polami i ograniczeniami nak│adanymi na te pola. Je┐eli dla pola okre£lono ograniczenie NOT NULL, to nowe rekordy musz╣ zawieraµ w tych polach poprawne warto£ci.

Klauzula CONSTRAINT nak│ada rozmaite ograniczenia na pole i mo┐e byµ u┐yta do ustalenia klucza podstawowego. Do utworzenia klucza podstawowego lub dodatkowych indeks≤w w istniej╣cych tabelach mo┐na r≤wnie┐ u┐yµ instrukcji CREATE INDEX.

Ograniczenie NOT NULL mo┐e byµ na│o┐one na pojedyncze pole lub te┐ wyst╣piµ w nazwanej klauzuli CONSTRAINT dotycz╣cej pojedynczego pola lub te┐ wielu p≤l.  Pomimo tego ograniczenie NOT NULL mo┐na zastosowaµ tylko raz dla pola.  Pr≤ba zastosowania tego ograniczenia wiΩcej ni┐ jeden raz powoduje wygenerowanie b│Ωdu czasu wykonania.

Podczas tworzenia tabeli TEMPORARY jest ona widoczna jedynie w sesji w kt≤rej by│a stworzona. Jest ona automatycznie usuwana kiedy sesja zostaje zako±czona. Tabele tymczasowe mog╣ byµ dostΩpne dla wiΩcej ni┐ jednego u┐ytkownika.

Atrybut WITH COMPRESSION mo┐y byµ u┐ywany tylko z typami danych CHARACTER oraz MEMO (tak┐e znanym jako TEXT) i ich synonimami.

Atrybut WITH COMPRESSION zosta│ dodany do kolumn CHARACTER z powodu zmiany przedstawienia znaku do formatu Unicode. Znaki w reprezentacji Unicode niezmiennie wymagaj╣ dw≤ch bajt≤w dla ka┐dego znaku. Dla istniej╣cych baz danych aparatu Microsoft« Jet kt≤re zawieraj╣ g│≤wnie dane znakowe mog│oby to oznaczaµ, ┐e rozmiar bazy danych niemal┐e podwoi│by siΩ po konwersji do formatu Microsoft Jet w wersji 4.0. Jednak┐e reprezentacja Unicode wielu zestaw≤w znak≤w poprzednio jednobajtowych (SBCS), mo┐e │atwo byµ skompresowana do jednego bajtu. Je£li kolumna typu CHARACTER zostanie zdefiniowana z tym atrybutem, dane automatycznie bΩd╣ skompresowane jako ┐e s╣ one zapisywane i dekompresowane w momencie pobrania z kolumny.

Kolumny typu MEMO tak┐e mog╣ byµ definiowane tak by przechowywaµ dane w skompresowanej postaci. Istnieje jednak ograniczenie. Tylko wyst╣pienia kolumn typu MEMO, kt≤re po kompresji nie przekrocz╣ rozmiaru 4096 bajt≤w, bΩd╣ skompresowane. Wszystkie inne wyst╣pienia kolumn typu MEMO pozostan╣ nieskompresowane. Oznacza to, ┐e dla okre£lonej tabeli, dla okre£lonej kolumny typu MEMO, niekt≤re dane mog╣ byµ skompresowane, a niekt≤re nieskompresowane.

Zobacz te┐
ADD USER - instrukcja CREATE USER lub GROUP - instrukcja
ALTER USER lub DATABASE - instrukcja CREATE VIEW - instrukcja
ALTER TABLE - instrukcja DROP - instrukcja
CONSTRAINT - klauzula DROP USER lub GROUP - instrukcja
CREATE INDEX û instrukcja GRANT - instrukcja
CREATE PROCEDURE - instrukcja REVOKE - instrukcja

Przyk│ad

CREATE TABLE - instrukcja, CONSTRAINT - klauzula - przyk│ad